package com.woniu.atms.service;

import com.github.pagehelper.PageInfo;
import com.woniu.atms.entity.G5Route;
import com.woniu.atms.entity.G5Schedule;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;

/**
 * 班次操作服务接口类
 */
public interface ScheduleService {

    /**
     * 查询所有班次信息
     * @param pageSize 单页面查询数量
     * @param pageNum 页码
     * @return 返回pageInfo
     */
    PageInfo<G5Schedule> findAll(Integer pageSize,Integer pageNum);

    /**
     * 根据id查询班次信息
     * @param id 传入的id
     * @return 返回实体类对象
     */
    G5Schedule findById(Integer id);

    /**
     * 添加班次信息
     * @param schedule 要加入的实体类
     */
    void add(G5Schedule schedule);

    /**
     * 根据id修改状态
     * @param id 要修改的id
     * @param status 修改的状态
     */
    void updateStatusById(Integer id,String status);

    /**
     * 根据id修改价格
     * @param id 要修改的id
     * @param price 修改的价格
     */
    void updatePriceById(Integer id, BigDecimal price);

    /**
     * 根据状态查询班次
     * @param status 要查询的状态
     * @param pageSize 单页面查询数量
     * @param pageNum 页码
     * @return 返回pageInfo
     */
    PageInfo<G5Schedule> findByStatus(String status,Integer pageSize,Integer pageNum);


//    /**
//     * 查询起止点线路
//     * @param start 起始站点（格式为 xx省-xx市：站点名 城市名需精准匹配，站点名为可选）
//     * @param end 目的站点
//     * @return 返回查询结果列表
//     */
//    List<G5Schedule> findByStartEnd(String start,String end);

    /**
     * 根据路线id查询班次
     * @param routeId 路线id
     * @return 返回列表
     */
    List<G5Schedule> findByRouteId(Integer routeId);

    /**
     * 根据线路表查询所有班次表
     * @param routeIds 线路的id表
     * @return 返回班次列表
     */
    List<G5Schedule> findByRouteList(List<Integer> routeIds);
}
